- if @merge_request.has_ci?
  - ci_commit = @merge_request.source_project.ci_commit(@merge_request.source_sha)
  - if ci_commit
    - status = ci_commit.status
    .mr-widget-heading
      .ci_widget{class: "ci-#{status}"}
        = ci_status_icon(ci_commit)
        %span CI build #{status}
        for #{@merge_request.last_commit_short_sha}.
        %span.ci-coverage
        = link_to "View build details", ci_status_path(ci_commit)

  - else
    - # Compatibility with old CI integrations (ex jenkins) when you request status from CI server via AJAX
    - # Remove in later versions when services like Jenkins will set CI status via Commit status API
    .mr-widget-heading
      - [:success, :skipped, :canceled, :failed, :running, :pending].each do |status|
        .ci_widget{class: "ci-#{status}", style: "display:none"}
          - if status == :success
            - status = "passed"
            = icon("check-circle")
          - else
            = icon("circle")
          %span CI build #{status}
          for #{@merge_request.last_commit_short_sha}.
          %span.ci-coverage
          - if ci_build_details_path(@merge_request)
            = link_to "View build details", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"

      .ci_widget
        = icon("spinner spin")
        Checking CI status for #{@merge_request.last_commit_short_sha}&hellip;

      .ci_widget.ci-not_found{style: "display:none"}
        = icon("times-circle")
        Could not find CI status for #{@merge_request.last_commit_short_sha}.

      .ci_widget.ci-error{style: "display:none"}
        = icon("times-circle")
        Could not connect to the CI server. Please check your settings and try again.

    :coffeescript
      $ ->
        merge_request_widget.getCiStatus()
